home *** CD-ROM | disk | FTP | other *** search
- MODULE ShpConvert;
- (*$E MOS *) IMPORT TOSIO;
-
- FROM SYSTEM IMPORT ADR,CADR,ADDRESS,WORD,BYTE,ASSEMBLER;
- FROM GrafBase IMPORT Point;
- FROM LineA IMPORT PutPixel, FilledRectangle;
- FROM Files IMPORT Open, EOF, Access, Close,File,State, Create, replaceOld;
- FROM Binary IMPORT ReadBytes, ReadByte, WriteBytes, ReadBlock,Seek,SeekMode;
- FROM InOut IMPORT WriteString,WriteLn,Read,WriteInt;
- FROM Strings IMPORT Length;
- FROM Storage IMPORT ALLOCATE, DEALLOCATE;
-
- PROCEDURE Assert (b: BOOLEAN; x: ADDRESS);
- END Assert;
-
- CONST
- bd=8; bw=320; bh=1024+64;
- destWidth=320+64+64;
-
- VAR
- graphicsBase:ADDRESS;
-
- VAR
- ch: CHAR;
- inFile, out1File,out2File,colFile:File;
- b:BYTE;
- c:CARDINAL;
- colStart,howMuch,colors,line,row,words,xDim,yDim,x,y,d,count,minPlot,
- maxPlot:INTEGER;
- inName,out1Name,out2Name,colName,string:ARRAY [0..255] OF CHAR;
- skip,long:LONGINT;
- dummy:BOOLEAN;
- start:ADDRESS;
- color:ARRAY [0..2] OF BYTE;
- wordPtr:POINTER TO WORD;
- bitSet:BITSET;
- card:CARDINAL;
- colorTab:ARRAY [0..1023] OF ARRAY [0..2] OF BYTE;
- shape: ADDRESS; (* Aufbau: Immer jew. 4 Byte f. Maske und 4 f. Shape *)
-
- PROCEDURE SetPix (x,y,col: CARDINAL);
- VAR c: CARDINAL; pc: POINTER TO CHAR;
- BEGIN
- IF x >= ORD(xDim) THEN HALT END;
- IF y >= ORD(yDim) THEN HALT END;
- c:= col; IF c # 0 THEN c:= 1 END;
- PutPixel (Point{x,y}, c);
- IF c = 0 THEN c:= 255 ELSE c:= 0 END;
- pc:= shape + LONG (x DIV 4 * 8 + x MOD 4) + 2 * LONG (y) * LONG (ORD(xDim));
- pc^:= CHR(c); (* Maske *)
- INC (pc,4);
- pc^:= CHR(col);
- END SetPix;
-
- BEGIN
- inName:= "F:\COMMON.SHP";
- out1Name:= "A:\COMMON.SHA";
- skip:= 0;
- howMuch:= 10;
- colStart:= 0;
- xDim:= 24;
- IF (xDim MOD 4) # 0 THEN
- HALT (* wir wollen immer ganze Longwords haben! *)
- END;
- yDim:= 24;
-
- FOR c:= 1 TO 20 DO WriteLn END;
-
- minPlot:=256; maxPlot:=0;
-
- Open(inFile,inName,readOnly);
- (* Seek (inFile, skip, fromBegin); *)
- Create (out1File, out1Name, writeOnly, replaceOld);
-
- FOR count:=0 TO howMuch-1 DO
- long:= LONG (xDim) * LONG (yDim) * 2;
- ALLOCATE (shape, long);
- FilledRectangle (Point{0,0}, Point{200,200});
- y:=0; x:=0;
- FOR line:=0 TO yDim-1 DO
- FOR row:=0 TO xDim-1 DO
- ReadByte(inFile,b);
- c:= ORD(b);
- SetPix (x,y,c);
- INC(x,4);
- IF x>=xDim THEN
- DEC(x,xDim);
- INC(y);
- IF y>=yDim THEN DEC(y,yDim); INC(x) END;
- END;
- END;
- END;
- (*
- Read (ch);
- IF ch = CHR(27) THEN
- RETURN
- END;
- *)
- WriteBytes (out1File, shape, long);
- DEALLOCATE (shape, long);
- END;
- Close(out1File);
- Close(inFile);
-
- END ShpConvert.
- ə
- (* $FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$00000A31$FFE5C2D0$00000ABA$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0$FFE5C2D0Ç$00000A31T.......T.......T.......T.......T.......T.......T.......T.......T.......T.......$0000069D$000009E7$00000A31$0000061D$000005ED$000005C3$0000069D$FFE5C2D0$00000672$0000059B$FFE5C2D0$FFE5C2D0$00000069$0000059B$000005CB$0000061DîÇÇ*)
-